<?php
/**
 * 文件存储队列
 */

$redis_server = '127.0.0.1';
$redis_port = '6379';
$put_file_key = 'PUT_FILE_DATA';
$data_dir = __DIR__.'/data';

function file_rput_contents($file, $content, $flags = 0, $context = null) {
    $dir = dirname($file);
    is_dir($dir) or mkdir($dir, 0777, true);
    file_put_contents($file, $content, $flags, $context);
}

$redis = new Redis();
$redis->connect($redis_server, $redis_port);

while ($item = $redis->lPop($put_file_key)) {
    $item = unserialize($item);
    file_rput_contents($data_dir.$item['file'], $item['data'], isset($item['mode']) ? (int)$item['mode'] : 0);
}

echo 'success';